package com.chenailin.www.util;

import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.*;

public class DateUtil {
    // 日期格式化器（示例：10月15日 星期一）
    private static final DateTimeFormatter DATE_FORMATTER =
            DateTimeFormatter.ofPattern("MM月dd日 EEEE", Locale.CHINA);

    // 不可实例化
    private DateUtil() {}

    // 生成从今天开始的未来7天日期（包含今天）
    public static Map<Integer, String> generateWeekDates() {
        Map<Integer, String> dateMap = new LinkedHashMap<>();
        LocalDate today = LocalDate.now();

        for (int i = 0; i < 7; i++) {
            LocalDate date = today.plusDays(i);
            String formattedDate = formatDateWithWeekday(date);
            dateMap.put(i + 1, formattedDate);
        }
        return dateMap;
    }

    // 根据选择序号获取实际日期
    public static LocalDate getDateByChoice(int choice) {
        if (choice < 1 || choice > 7) {
            throw new IllegalArgumentException("选择序号必须在1-7之间");
        }
        return LocalDate.now().plusDays(choice - 1);
    }

    // 格式化日期
    public static String formatDateWithWeekday(LocalDate date) {
        return date.format(DATE_FORMATTER);
    }

    // 获取未来7天的原始日期对象列表
    public static List<LocalDate> getRawDateList() {
        List<LocalDate> dates = new ArrayList<>(7);
        LocalDate today = LocalDate.now();

        for (int i = 0; i < 7; i++) {
            dates.add(today.plusDays(i));
        }
        return dates;
    }
}
